/**
 使用：
	import loadMoreMixin from "@/mixins/loadMoreMixin.js"
	export default {
		mixins: [loadMoreMixin],
		onShow() {
			this.historyList = []
			this.getHistoryList()
		},
		// 触底函数
		onReachBottom() {
			this.loadMore(this.historyList, ()=>{
				this.getHistoryList()
			})
		},
 }
 */
export default {
	data() {
		return {
			// 当前页码
			pageNum: 1,
			// 数据是否已经加载完毕
			isBottom: false,
			// 是否加载中
			apiLoading: false
		}
	},
	methods: {
		/**
		 * 加载更多
		 * @param {Object} targetList 需要新增数据的数组
		 * @param {Object} fn 获取数据的函数
		 */
		loadMore(targetList, fn) {
			// 当前总数据量
			const total = this.pageNum * this.pageSize
			// 当本页数量小于既定数量，说明已加载完成
			if (targetList.length < total) {
				// 触底后不再请求接口
				return this.isBottom = true
			}

			this.pageNum++
			// 执行获取数据的函数
			fn()
		},

		/**
		 * 重置当前分页信息
		 */
		initPage(name = 'contentList') {
			this[name] = []
			this.pageNum = 1
			this.isBottom = false
		},
	},
	computed: {
		// 每页数量
		pageSize() {
			return 15
		},
		
		// 加载状态
		loadmoreStatus() {
			return this.apiLoading ? 'loading' : 'nomore'
		}
	}
}